﻿using System;
using System.Collections.Generic;

namespace Sinacor.Servico.Bovespa.Contabil.Service.ServiceImplementation.Translator.DataContractToBusinessEntity
{
    /// <summary>
    /// ServiceImplementation.Translator.DataContractToBusinessEntity Class - ContaContabilFaturamento
    /// </summary>
    public class ContaContabilFaturamento
    {
        #region ToContaContabilFaturamento

        public BusinessEntity.ContaContabilFaturamento ToContaContabilFaturamento(DataContract.Request.ContaContabilFaturamentoRequest from)
        {
            if (from == null) return null;

            return new BusinessEntity.ContaContabilFaturamento
            {
                CodigoBolsa = from.CodigoBolsa,
                CodigoEventoContabil = from.CodigoEventoContabil,
                CodigoGrupoContabil = from.CodigoGrupoContabil,
                CodigoHistoricoCredito = from.CodigoHistoricoCredito,
                CodigoHistoricoDebito = from.CodigoHistoricoDebito,
                CodigoHistoricoEstorno = from.CodigoHistoricoEstorno,
                CodigoMunicipio = from.CodigoMunicipio,
                CodigoResumidoCredito = from.CodigoResumidoCredito,
                CodigoResumidoDebito = from.CodigoResumidoDebito,
                ContaCredito = from.ContaCredito,
                ContaDebito = from.ContaDebito,
                DescricaoBolsa = from.DescricaoBolsa,
                DescricaoEventoContabil = from.DescricaoEventoContabil,
                DescricaoGrupoContabil = from.DescricaoGrupoContabil,
                DescricaoMunicipio = from.DescricaoMunicipio,
                DigitoHistoricoCredito = from.DigitoHistoricoCredito,
                DigitoHistoricoDebito = from.DigitoHistoricoDebito,
                DigitoHistoricoEstorno = from.DigitoHistoricoEstorno,
                DigitoResumidoCredito = from.DigitoResumidoCredito,
                DigitoResumidoDebito = from.DigitoResumidoDebito
            };
        }

        public List<BusinessEntity.ContaContabilFaturamento> ToContaContabilFaturamento(List<DataContract.Request.ContaContabilFaturamentoRequest> from)
        {
            if (from == null) return null;

            List<BusinessEntity.ContaContabilFaturamento> BusinessEntity = new List<BusinessEntity.ContaContabilFaturamento>();

            foreach (DataContract.Request.ContaContabilFaturamentoRequest item in from)
            {
                BusinessEntity.Add(new BusinessEntity.ContaContabilFaturamento
                {
                    CodigoBolsa = item.CodigoBolsa,
                    CodigoEventoContabil = item.CodigoEventoContabil,
                    CodigoGrupoContabil = item.CodigoGrupoContabil,
                    CodigoHistoricoCredito = item.CodigoHistoricoCredito,
                    CodigoHistoricoDebito = item.CodigoHistoricoDebito,
                    CodigoHistoricoEstorno = item.CodigoHistoricoEstorno,
                    CodigoMunicipio = item.CodigoMunicipio,
                    CodigoResumidoCredito = item.CodigoResumidoCredito,
                    CodigoResumidoDebito = item.CodigoResumidoDebito,
                    ContaCredito = item.ContaCredito,
                    ContaDebito = item.ContaDebito,
                    DescricaoBolsa = item.DescricaoBolsa,
                    DescricaoEventoContabil = item.DescricaoEventoContabil,
                    DescricaoGrupoContabil = item.DescricaoGrupoContabil,
                    DescricaoMunicipio = item.DescricaoMunicipio,
                    DigitoHistoricoCredito = item.DigitoHistoricoCredito,
                    DigitoHistoricoDebito = item.DigitoHistoricoDebito,
                    DigitoHistoricoEstorno = item.DigitoHistoricoEstorno,
                    DigitoResumidoCredito = item.DigitoResumidoCredito,
                    DigitoResumidoDebito = item.DigitoResumidoDebito
                });
            }
            return BusinessEntity;
        }

        #endregion

        #region ToFiltroContaContabilFaturamento

        public BusinessEntity.Parameter.FiltroContaContabilFaturamento ToFiltroContaContabilFaturamento(DataContract.Request.FiltroContaContabilFaturamentoRequest from)
        {
            if (from == null) return null;

            return new BusinessEntity.Parameter.FiltroContaContabilFaturamento
            {
                CodigoBolsa = from.CodigoBolsa,
                CodigoEventoContabil = from.CodigoEventoContabil,
                CodigoGrupoContabil = from.CodigoGrupoContabil,
                CodigoMunicipio = from.CodigoMunicipio
            };
        }

        public List<BusinessEntity.Parameter.FiltroContaContabilFaturamento> ToFiltroContaContabilFaturamento(List<DataContract.Request.FiltroContaContabilFaturamentoRequest> from)
        {
            if (from == null) return null;

            List<BusinessEntity.Parameter.FiltroContaContabilFaturamento> BusinessEntity = new List<BusinessEntity.Parameter.FiltroContaContabilFaturamento>();

            foreach (DataContract.Request.FiltroContaContabilFaturamentoRequest item in from)
            {
                BusinessEntity.Add(new BusinessEntity.Parameter.FiltroContaContabilFaturamento
                {
                    CodigoBolsa = item.CodigoBolsa,
                    CodigoEventoContabil = item.CodigoEventoContabil,
                    CodigoGrupoContabil = item.CodigoGrupoContabil,
                    CodigoMunicipio = item.CodigoMunicipio
                });
            }
            return BusinessEntity;
        }

        #endregion

        #region ToFiltroContaContabilFaturamentoChave

        public BusinessEntity.Parameter.FiltroContaContabilFaturamentoChave ToFiltroContaContabilFaturamento(DataContract.Request.FiltroContaContabilFaturamentoChaveRequest from)
        {
            if (from == null) return null;

            return new BusinessEntity.Parameter.FiltroContaContabilFaturamentoChave
            {
                CodigoBolsa = from.CodigoBolsa,
                CodigoEventoContabil = from.CodigoEventoContabil,
                CodigoGrupoContabil = from.CodigoGrupoContabil,
                CodigoMunicipio = from.CodigoMunicipio
            };
        }

        public List<BusinessEntity.Parameter.FiltroContaContabilFaturamentoChave> ToFiltroContaContabilFaturamento(List<DataContract.Request.FiltroContaContabilFaturamentoChaveRequest> from)
        {
            if (from == null) return null;

            List<BusinessEntity.Parameter.FiltroContaContabilFaturamentoChave> BusinessEntity = new List<BusinessEntity.Parameter.FiltroContaContabilFaturamentoChave>();

            foreach (DataContract.Request.FiltroContaContabilFaturamentoChaveRequest item in from)
            {
                BusinessEntity.Add(new BusinessEntity.Parameter.FiltroContaContabilFaturamentoChave
                {
                    CodigoBolsa = item.CodigoBolsa,
                    CodigoEventoContabil = item.CodigoEventoContabil,
                    CodigoGrupoContabil = item.CodigoGrupoContabil,
                    CodigoMunicipio = item.CodigoMunicipio
                });
            }
            return BusinessEntity;
        }

        #endregion

        #region ToFiltroPlanoConta

        public BusinessEntity.Parameter.FiltroPlanoConta ToFiltroPlanoConta(DataContract.Request.FiltroPlanoContaRequest from)
        {
            if (from == null) return null;

            return new BusinessEntity.Parameter.FiltroPlanoConta
            {
                CodigoConta = from.CodigoConta,
                CodigoResumidoConta = from.CodigoResumidoConta,
                DigitoResumidoConta = from.DigitoResumidoConta
            };
        }

        #endregion
    }
}
